-
-
Notifications
You must be signed in to change notification settings - Fork 58
Orb of Ankou 1.21.5 #1128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: update-1.21.5
Are you sure you want to change the base?
Orb of Ankou 1.21.5 #1128
Conversation
NOTE: breaks old agile items, need an upgrade path
NOTE: breaks old pricking soul essence
Does this include souls for the Armadillo, the Bogged, and the Breeze? Asking as they are not ticked off yet in #1010. |
Armadillo, Bogged, and Breeze souls were added in #1054 |
- inline functions that aren't called from multiple places - use random - shard and essence entities grab loot table item instead of copying exact item (to act as an upgrade path) - TODO: orb upgrade path using data from shard loot tables
This uses the player motion library, which is a potential issue since it's the first time adding a non-gm4 library as a dependency. AFAIK there is no way for our dependency checker functions (now automatically generated based on beet.yaml) to account for external libraries and disable the module if an unsupported version of player motion is installed. At the very most, the dashing pneuma would change behavior, which isn't that big of a deal. Should this be addressed before merging this change? |
I'm not too keen on relying on external data pack libraries |
I don't think relying on external libraries is a bad thing, as long as we properly pin the version or copy it into our sources. But I'm more wondering why this library is suddenly necessary and wasn't in the previous version. Could we not update OoA to 1.21.5 without this new mechanic? |
The library isn't necessary, but it provides a much better UX and UI. The previous system locked the player into the trajectory, not allowing them to move away from the initial dash (since it makes the player ride an armor stand which is given motion) and it also used weird armor stand motion which broke. Instead of fixing the broken armor stand motion I decided it was better to do it the "proper" way with player motion. I can try to fix dashing without player motion if we don't wanna deal with it for this update. |
Using the player_motion library seems fine, as long as:
|
- adds the player motion library as a namespaced and versioned GM4 library with proper call function tags
Okay, this PR now adds player motion as a GM4 library (lib_player_motion) which has the following differences:
This handles all 4 criteria specified in the last message. Additionally, this PR now adds a new plugin which refactors external libraries to prefix namespaces with "gm4_" and deletes any |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After some more discussion we have concluded that inclusion of the player motion library as-is is not possible due to
- it forceloading
0 0
- it not using lantern load
We should instead fork the library and make it use our forceloaded chunk and lantern load, as well as proper versioning. Alongside these changes, using a different UUID for the marker and using the gm4_player_motion namespace are required for this PR to proceed.
- basically a fork that is renamespaced, version-checked, and uses the GM4 forceloaded chunk - licensing might not be correct in the release download
The player motion library has been "forked" (copied over manually) to use lantern load and our forceloaded chunk. Full changes can be found in the README of lib_player_motion. I'm not entirely sure if the licensing is done correctly. MIT doesn't require us to list the changes made (like GPL3 does), so I think we should be fine just putting the original MIT license file in the data/gm4_player_motion folder? But I don't think that would be carried onto the download zip since it only carries over the main LICENSE file from the library root folder. Or do we just add the copyright onto our license file? |
Fixes various pneumas (agile, anchoring, bashing, blasting, dashing, enduring, pricking, feigning, soaring).
Uses fall damage multiplier attribute for agile instead of a clock.
Uses player motion library (v1.4.2) to implement dashing mechanic.
Loot tables now exist for all soul shards.
Soul Shards and Orbs of Ankou are now non stackable (stack size of 1).
Upgrade paths are implemented by throwing the item into a soul forge and extinguishing it. The entity data for failed items is now based on loot tables instead of copying the exact item data from the soul forge.